---
title: SAIF.Business.Tasks overview
summary: High-level purpose, scope, and responsibilities for this library.
status: draft
owner: SAIF Documentation
last_reviewed: 2026-08-21
library: SAIF.Business.Tasks
reference_type: embedded
---

# SAIF.Business.Tasks overview

> **Documentation context:** Front-End Application Component
> **Documented via:** LegalMaintenance (LegalMaintenance/LegalMaintenance.vbproj)

`SAIF.Business.Tasks` is the shared, source-system-agnostic task business layer in the SAIF BOF architecture. It defines the abstract task business object and collection that concrete task types (in `SAIF.Business.Tasks.Claim`) extend, the dynamic search/filter subsystem used to list tasks, and a set of read-only task code-table lookups.

## Purpose
- Provide a single, reusable persistence and validation contract for "task" records — reminders/follow-ups attached to claims, policies, or other business entities — so every consuming source system (claims, provider, imaging, etc.) shares the same create/update/delete/retrieve behavior and rule set.
- Provide a dynamic, criteria-driven search capability (`clsTaskCollection.Criteria`) so callers can filter tasks by category, priority, date range, assigned user, claim, policy, action code, and free-text search without writing SQL themselves.
- Provide read-only code-table lookups (action, category, priority, source codes) that translate between database code strings and framework enums (`TaskSourceSystem`, `TaskPriority`).
- Consumed by `SAIF.Business.Tasks.Claim` (concrete claim task types) and the application layer (`SAIF.Application.Claim`, `SAIF.Application.Claim.Legal`) to manage claim-related tasks within the `LegalMaintenance` web application.

## Responsibilities
- Define the abstract task business object (`clsTask`) and abstract task collection (`clsTaskCollection`) with shared persistence plumbing, properties, and rule wiring.
- Assemble dynamic, criteria-driven `SELECT` statements against `TASK` and enforce read-only access to task code tables.
- Route `TASK` create/update/delete through the Oracle stored-procedure package `pk82036_task`.
- Implement the common task business rules invoked by the BOF rules engine (see [Business rules](business-rules.md)).

## Key components
- `clsTask`: abstract single-task business object — persistence lifecycle, properties, snapshot/restore state.
- `clsTaskCollection`: abstract task collection — dynamic retrieval (`GetTasks`), batch save, and purge (`PurgeTasks`).
- `clsTaskCollection.Criteria`: dynamic SQL-assembly component for the task search/filter subsystem.
- `clsTaskActionCode` / `clsTaskCategoryCode` / `clsTaskPriorityCode` / `clsTaskSourceCode` (and their collections): read-only code-table lookups.
- `clsTaskContext`: value holder for the six task "context" columns used to associate a task with an arbitrary business entity.
- `clsTaskBusinessRules`: shared rule functions invoked by the BOF rules engine.

## Related documentation
- [Index](index.md)
- [Architecture](architecture.md)
- [Dependencies](dependencies.md)
- [Operations and processes](operations-processes.md)
- [Business rules](business-rules.md)
- [Database tables](database-tables.md)
- [SQL catalog](sql/index.md)
- [Procedures](procedures/index.md)
- [API reference](api/index.md)

## Sources
- SAIF.Business.Tasks/clsTask.vb
- SAIF.Business.Tasks/clsTaskCollection.vb
- SAIF.Business.Tasks/clsTaskBusinessRules.vb
- SAIF.Business.Tasks/SAIF.Business.Tasks.vbproj
